package com.lh.gateway.config;

import org.springframework.web.filter.CorsFilter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;

import java.util.ArrayList;
import java.util.List;

/**
 * 解决跨域问题，我们一般使用自定义Filter去解决，下边也算一种方案
 *
 * @author liuhe
 * @date 2020/06/18
 */
@Configuration
public class WebCorsConfg {

    @Bean
    public CorsFilter corsFilter() {
        // 1、添加cors配置信息
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        // 1)、允许的域，不要写*，否则cookie无法使用
        corsConfiguration.addAllowedOrigin("http://manage.leyou.com");
        corsConfiguration.addAllowedOrigin("http://localhost:9001");
        // 2)、发送cookie信息
        corsConfiguration.setAllowCredentials(true);
        // 3)、允许的请求方式
        corsConfiguration.addAllowedMethod("*");
        // 4)、允许的头信息
        corsConfiguration.addAllowedHeader("*");

        //2、添加映射路径，我们拦截一切请求
        UrlBasedCorsConfigurationSource configSource = new UrlBasedCorsConfigurationSource();
        configSource.registerCorsConfiguration("/**", corsConfiguration);

        //3、返回新的corsFilter
        return new CorsFilter(configSource);
    }
}
